﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Domain; //подключение Domain
using Session; //подключение Session
using Notif; //подключение Notif

namespace Sale_Ords
{ 
    public partial class FormSlOrdsInsr : Form
    {
        BrokerSlOrds b_SlOrds = new BrokerSlOrds(); // объявление BrokerSlOrds
        int idx;
        public FormSlOrdsInsr()
        {
            InitializeComponent();
        }

        private void SlOrds_Insr_sBt_Ex_Click(object sender, EventArgs e) // закрытие формы
        {
            FClose();
        }

        private void SlOrds_Insr_sBt_Insr_Click(object sender, EventArgs e) // при нажатии кнопки "Добавить"
        {
            try
            {
                Dm_Pers prsS = new Dm_Pers(); // объявление Dm_Pers
                Dm_Pers prsL = new Dm_Pers(); // объявление Dm_Pers
                Dm_Type tp = new Dm_Type(); // объявление Dm_Type
                Dm_Orders ords = new Dm_Orders(); // объявление Dm_Orders

                prsS = SlOrds_Insr_cBE_Prs.SelectedItem as Dm_Pers; // присвоение значений prs из SlOrds_Insr_cBE_Prs
                tp = SlOrds_Insr_cBE_Tp.SelectedItem as Dm_Type; // присвоение значений tp из SlOrds_Insr_cBE_Tp
                prsL = SlOrds_Insr_cBE_PrsLog.SelectedItem as Dm_Pers;

                ords.Customer = SlOrds_Insr_tE_Ctmr.Text; // присвоение значений ords.Customer из SlOrds_Insr_tE_Ctmr.Text 
                ords.Vendor = SlOrds_Insr_tE_Vdr.Text; // присвоение значений ords.Vendor из SlOrds_Insr_tE_Vdr.Text
                ords.Date = DateTime.Now; // присвоение значений ords.Date из SlOrds_Insr_dE_Dt.Text
                ords.Date_contr = Convert.ToDateTime(SlOrds_Insr_dE_DtCnt.Text); // присвоение значений ords.Date_contr из SlOrds_Insr_dE_DtCnt.Text
                ords.Id_stat = 11;

                b_SlOrds.Insert(ords, prsS, prsL, tp); // вызов функции на добавление новой записи

                MessNotif.Informing("Запись успешно добавлена.", "Запись добавлена"); // информирование о добавление новой записи 

                FClose(); // закрытие формы
            }

            catch (Exception ex) // если не добавилось
            {
                MessageBox.Show(ex.ToString());
            }       
        }

        private void FormSlOrdsInsr_Load(object sender, EventArgs e) // заполнение ComboBox при открытие формы
        {
            SlOrds_Insr_cBE_Prs.Properties.Items.AddRange(b_SlOrds.FillComboBoxPers()); // заполнение FillComboBoxPers
            SlOrds_Insr_cBE_Tp.Properties.Items.AddRange(b_SlOrds.FillComboBoxType()); // заполнение FillComboBoxType
            SlOrds_Insr_cBE_PrsLog.Properties.Items.AddRange(b_SlOrds.FillComboBoxPersLog()); 

            int mg = Dm_User.Id_pers; // объявление переменной и присвоение ей значения из Dlv_Upd_cBE_Mg.Text

            for (int i = 0; i < SlOrds_Insr_cBE_Prs.Properties.Items.Count; ++i) //цикл на просмотр всех Item-ов
            {
                string s = SlOrds_Insr_cBE_Prs.Properties.Items[i].ToString(); // объявление переменной и присвоение ей значения Item-а
                if (s == b_SlOrds.idxPers(mg)) // вызов фенкции на "поиск по id" и сравниване полученных данных со значениями из Item-ов
                {
                    idx = i; // присваивание idx значения нужного индекса
                }
            }

            SlOrds_Insr_cBE_Prs.SelectedIndex = idx; // установка индекса

            SlOrds_Insr_dE_Dt.DateTime = DateTime.Now;
            SlOrds_Insr_dE_DtCnt.Properties.MinValue = SlOrds_Insr_dE_Dt.DateTime.AddDays(1);
        }

        private void fullfill()
        {
            if (SlOrds_Insr_tE_Ctmr.Text != "" & SlOrds_Insr_tE_Vdr.Text != "" & SlOrds_Insr_cBE_Prs.SelectedItem != null & SlOrds_Insr_cBE_Tp.SelectedItem != null & SlOrds_Insr_cBE_PrsLog.SelectedItem != null & SlOrds_Insr_dE_DtCnt.Text != "")
            {
                SlOrds_Insr_sBt_Insr.Enabled = true;
            }
            else
                SlOrds_Insr_sBt_Insr.Enabled = false;
        }

        private void FormSlOrdsInsr_MouseEnter(object sender, EventArgs e)
        {
            fullfill();
        }

        private void FClose() // функция для закрытия формы
        {
            SlOrds_Insr_cBE_Prs.Properties.Items.Clear(); // отчистка ComboBoxPost
            SlOrds_Insr_cBE_Tp.Properties.Items.Clear(); // отчистка ComboBoxPost
            SlOrds_Insr_cBE_PrsLog.Properties.Items.Clear(); // отчистка ComboBoxPost
            SlOrds_Insr_dE_Dt.Text = "";
            SlOrds_Insr_tE_Ctmr.Text = "";
            SlOrds_Insr_tE_Vdr.Text = "";
            SlOrds_Insr_dE_DtCnt.Text = "";
            this.Close();
        }

        private void FormSlOrdsInsr_FormClosed(object sender, FormClosedEventArgs e)
        {
            FClose();
        }
    }
}
